home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / nt / emacssrc.zip / EMACSSRC.TAR / emacs-19.17 / oldxmenu / findpane.c < prev    next >
C/C++ Source or Header  |  1993-03-09  |  1KB  |  65 lines

  1. #include "copyright.h"
  2.  
  3. /* $Header: /u/src/emacs/19.0/oldXMenu/RCS/FindPane.c,v 1.1 1992/04/11 22:10:19 jimb Exp $ */
  4. /* Copyright    Massachusetts Institute of Technology    1985    */
  5.  
  6. /*
  7.  * XMenu:    MIT Project Athena, X Window system menu package
  8.  *
  9.  *    XMenuFindPane - Find the first menu pane who's label matches a 
  10.  *            particular string.
  11.  *
  12.  *    Author:        Tony Della Fera, DEC
  13.  *            January 22, 1986
  14.  *
  15.  */
  16.  
  17. #include "XMenuInt.h"
  18.  
  19. int
  20. XMenuFindPane(menu, label) 
  21.     register XMenu *menu;
  22.     register char *label;
  23. {
  24.     register XMPane *p_ptr;
  25.     register int i = 0;
  26.  
  27.     /*
  28.      * Check for NULL pointers!
  29.      */
  30.     if (label == NULL) {
  31.     _XMErrorCode = XME_ARG_BOUNDS;
  32.     return(XM_FAILURE);
  33.     }
  34.  
  35.     /*
  36.      * Find the pane who's label matches the given label.
  37.      */
  38.     for (
  39.     p_ptr = menu->p_list->next;
  40.     p_ptr != menu->p_list;
  41.     p_ptr = p_ptr->next
  42.     ){
  43.     if (p_ptr->label_length == 0) {
  44.         if (*label == '\0') {
  45.         _XMErrorCode = XME_NO_ERROR;
  46.         return (i);
  47.         }
  48.     }
  49.     else {
  50.         if (strncmp (label, p_ptr->label, p_ptr->label_length) == 0) {
  51.         _XMErrorCode = XME_NO_ERROR;
  52.         return (i);
  53.         }
  54.     }
  55.     i++;
  56.     }
  57.  
  58.     /*
  59.      * If we get here then we have not found
  60.      * a match.
  61.      */
  62.     _XMErrorCode = XME_P_NOT_FOUND;
  63.     return (XM_FAILURE);
  64. }
  65.